#ifndef USERINTERFACE_H_ //It should be capital
#define USERINTERFACE_H_ //It should be capital

#pragma comment (lib,"opengl32.lib")
#pragma comment (lib,"SOIL.lib")

#include <GL/GL.h>
#include "LeoGraphics.h"
#include "LeoVisualizer.h"
#include <GL\SOIL.h>

#include <vector>
using namespace std;

class UserInterface 
{
public:
	UserInterface ();
	static void CreateVariableUserInterface();
	static void CreateUserInterface (GLuint text);
	~UserInterface (); //destructor

	// member functions, brackets could contain info on function

	int LoadGLTextures();
		
	static void Full3dLung_position(int* position);
	static void Full3dLung_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void Full3dLung_do(LeoGraphics* leo);

	static void CTSlices_position(int* position);
	static void CTSlices_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void CTSlices_do(LeoGraphics* leo);

	static void BronchialTree_position(int* position);
	static void BronchialTree_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void BronchialTree_do(LeoGraphics* leo);

	static void DynamicLung_position(int* position);
	static void DynamicLung_check(int mouseX, int mouseY);
	static void DynamicLung_do();

	static void PlayButton_position(int* position);
	static void PlayButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void PlayButton_do(LeoGraphics* leo);

	static void PauseButton_position(int* position);
	static void PauseButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void PauseButton_do(LeoGraphics* leo);

	static void BackButton_position(int* position);
	static void BackButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void BackButton_do(LeoGraphics* leo);

	static void NextButton_position(int* position);
	static void NextButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void NextButton_do(LeoGraphics* leo);

	static void UpButton_position(int* position);
	static void UpButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void UpButton_do(LeoGraphics* leo);

	static void DownButton_position(int* position);
	static void DownButton_check(int mouseX, int mouseY, LeoGraphics* leo);
	static void DownButton_do(LeoGraphics* leo);

	static void FileButton_position(int* position);
	static void FileButton_check(int mouseX, int mouseY);
	static void FileButton_do();

	static void FileMenu_position(int* position);
	static void FileMenu_check(int mouseX, int mouseY, LeoGraphics* leo);

	static void HelpButton_position(int* position);
	static void HelpButton_check(int mouseX, int mouseY);
	static void HelpButton_do();

	static void HelpMenu_position(int* position);
	static void HelpMenu_check(int mouseX, int mouseY);

	static void OtherDecoration();

	static void OpenFile_do(LeoGraphics* leo);

	static void ScrollingBar_position(int position);
	static int ScrollingBar_CheckInside(LPARAM lParam);
	static void ScrollingBar_Move(LPARAM lParam);

	static void ViewHelp_do();
	static void AboutUs_do();

	static bool texture_loaded;
	static HWND hwnd;
	static HINSTANCE hInst;
	static int ScrollingBarVertical_;

private:
	static int Full3dLungPosition_[4];
	static int CTSlicesPosition_[4];
	static int BronchialTreePosition_[4];
	static int DynamicLungPosition_[4];
	static int PlayButtonPosition_[6];
	static int PauseButtonPosition_[6];
	static int BackButtonPosition_[4];
	static int NextButtonPosition_[4];
	static int UpButtonPosition_[4];
	static int DownButtonPosition_[4];
	static int FileButtonPosition_[4];
	static int FileMenuPosition_[4];
	static int HelpButtonPosition_[4];
	static int HelpMenuPosition_[4];
	



}; //essential to have a semi-colon here

#endif
//this makes sure that this is only compiled ONCE